$.extend({
    checkAccount: function (opts) {
        console.log('------', opts)
        var type = opts.type || 2; // 检测场景：1：steam绑定；2：购买；3：出售；21：抢卡、冶炼、汰换
        var appid = opts.appId || 730;
        var currBuyBtn = opts.currBuyBtn;
        var steamId = opts.steamId;
        var tradeUrl = opts.tradeUrl;
        var actionType = opts.actionType || 'buy'; //bind 绑定。buy 购买. sell 上架  assistant 交易助手检测   other 冶炼抢卡...
        var isAuto = opts.isAuto; //1为自动
        var tipText = opts.tipText || '由于你的Steam账号交易状态存在问题，不符合购买条件，请先检测后再继续购买'; //非自动下的提示
        var successCallback = opts.successCallback; //检测通过回调
        var timeId = null;
        var isCheckNow = true;
        var loadingModal = false;
        //立即检测弹窗
        if (isAuto == 1) {
            checkNow();
        } else {
            $.showErrorMessage({
                'title': '账号检测',
                'class': 'checkModal',
                "content": tipText,
                'buttons': [{
                    'text': '立即检测',
                    'class': 'btn btn-green mr-20',
                    'callback': function (e) {
                        checkNow()
                    }
                }, {
                    'text': '取消',
                    'class': 'btn btn-blue',
                    'dismiss': true
                }]
            }).find('.modal-footer').css({'text-align': 'center', 'border-top': 'none'});
        }

        //立即检测逻辑
        function checkNow() {
            $.star.http({
                url: '/steamtrade/steam/health/v1/get',
                data: {
                    scene: type,
                    appId: appid,
                    tradeUrl: tradeUrl,
                    steamId: steamId
                }
            }).then(function (res) {
                if (res.data.checkStatus == 1) {
                    if (!loadingModal) {
                        $('#check-account-modal').modal('show');
                    } else {
                        timeId = setTimeout(function () {
                            checkNow();
                        }, 2000)
                    }
                } else {
                    clearTimeout(timeId)
                    $('#check-account-modal').modal('show');
                    var status = res.data.checkStatus
                    $('#check-account-modal .check-account-content').html(template('check-account-content', {
                        type: res.data.status == 1 ? 'success' : 'error',
                        data: res.data
                    }))
                }
            })
        }

        //重新检测逻辑
        function checkNew() {
            $.star.http({
                type: 'POST',
                url: '/steamtrade/tradeassistant/v1/status-check',
                data: {
                    type: type,
                    appId: appid,
                    steamId: steamId,
                    tradeUrl: tradeUrl
                }
            }).then(function (res) {
                if (res.errorCode == 0) {
                    _check();
                } else {
                    $('#check-account-modal').modal('hide');
                    $.showErrorMessage(res.errorMsg)
                }
            })

        }

        //账号检测弹窗文字轮播
        function checkContentLB(el, type) {
            var textArr = []
            if (actionType == 'bind') {
                textArr = [
                    '检测账号是否可交易...',
                    '检测交易链接是否填写...',
                    '检测库存是否公开...'
                ];
            }
            if (actionType == 'buy') {
                var tempStr = 'CSGO'
                if (appid == 570) {
                    tempStr = 'DOTA2'
                }
                if (appid == 433850) {
                    tempStr = 'H1Z1'
                }
                textArr = [
                    '检测账号是否可交易',
                    '检测交易链接是否填写',
                    '检测库存是否公开',
                    '检测 ' + tempStr + ' 库存容量'
                ]
            }
            if (actionType == 'sell') {
                textArr = [
                    '检测账号是否可交易',
                    '检测账号是否处于暂挂状态',
                    '检测交易链接是否填写',
                    '检测库存是否公开',
                    '检测账号是否处于家庭监护状态',
                    '检测账号是否已填写 API 密钥'
                ]
            }
            if (actionType == 'other') {
                var tempStr = 'CSGO'
                if (appid == 570) {
                    tempStr = 'DOTA2'
                }
                if (appid == 433850) {
                    tempStr = 'H1Z1'
                }
                textArr = [
                    '检测账号是否可交易',
                    '检测交易链接是否填写',
                    '检测库存是否公开',
                    '检测 ' + tempStr + ' 库存容量'
                ]
            }
            var index = 0;
            setInterval(function () {
                if (index > 2) {
                    index = 0;
                }
                el.text(textArr[index]);
                index++;
            }, 1000)
        }

        //检测通过按钮文案
        function getText() {
            if (type == 1) {
                return '继续购买'
            } else if (type == 2) {
                return '继续操作'
            } else if (type == 3) {
                return '继续发货'
            }
        }

        function _check() {
            $.star.http({
                url: '/steamtrade/steam/health/v1/get',
                data: {
                    type: type,
                    appId: appid,
                    tradeUrl: tradeUrl,
                    steamId: steamId
                }
            }).then(function (res) {
                if (res.data.checkStatus == 1) {
                    timeId = setTimeout(function () {
                        _check();
                    }, 2000)
                } else {
                    // $('#check-account-modal').modal('hide');
                    clearTimeout(timeId)
                    var status = res.data.checkStatus
                    $('#check-account-modal .check-account-content').html(template('check-account-content', {
                        type: res.data.status == 1 ? 'success' : 'error',
                        data: res.data
                    }))
                    // $.showMessage({
                    //     'title': '账号检测',
                    //     "content": template('check-account', { res: res.data.statusList, is: status }),
                    //     'buttons': [{
                    //         'text': status == 1 ? getText() : '重新检测',
                    //         'class': 'btn btn-green',
                    //         'url': '',
                    //         'callback': function(e) {
                    //             if (status == 1) { //继续购买
                    //                 isCheckNow = true;
                    //                 loadingModal = false;

                    //                 if(successCallback){
                    //                     successCallback && successCallback();
                    //                 }else{
                    //                     currBuyBtn.trigger('click');
                    //                 }
                    //             } else { //重新检测
                    //                 isCheckNow = false;
                    //                 $('#check-account-modal').modal('show');
                    //             }
                    //         }
                    //     }]
                    // }).find('.modal-footer').css({ 'text-align': 'center', 'border-top': 'none' })
                }
            })
        }

        //关闭loading 弹窗
        $(document).on('hide.bs.modal', '#check-account-modal', function () {
            clearTimeout(timeId);
        });

        //loading 弹框弹出
        $(document).off('shown.bs.modal', '#check-account-modal').on('shown.bs.modal', '#check-account-modal', function () {
            checkContentLB($('#check-account-modal .check-text'));
            loadingModal = true;
            if (isCheckNow) {
                checkNow();
            } else {
                checkNew();
            }
        });

        // 设置Apikey
        $(document).on('click', '#J_Setapikey', function () {
            require(['modal/bApiKey'], function (apiKey) {
                new apiKey({
                    steamId: steamId
                });
            });
        });

        // 设置交易链接
        $(document).on('click', '#J_SettradeUrl', function () {
            require(['modal/bTradeLink'], function (tradeLink) {
                new tradeLink({
                    steamId: steamId
                });
            });
        });
    }
})
